Today a vast spectrum of different telecommunication systems has evolved for both wired and wireless telecommunication. Telecommunication systems have been standardized in connection with second generation (2G) and third generation (3G) mobile phone systems. Information about 3G-technology (e.g. W-CDMA or CDMA2000) and 2G-technology (e.g. GSM). Fourth generation (4G) systems exist for enabling even higher data transfer speeds. One such example is LTE (Long Term Evolution), which is the next step in terms of user-service experience, improving latency, capacity and throughput. For example, this includes the 3GPP work on the Evolution of the 3G Mobile Systems and hence the evolution of the Universal Terrestrial Radio Access Network (UTRAN).
Cryptography can protect data from unwanted access during wireless communications. Cryptography typically involves mathematical operations on data (encryption) that makes the original data (plaintext) unintelligible (ciphertext). Reverse mathematical operations (decryption) restore the original data from the ciphertext. Typically, decryption relies on additional data such as a cryptographic key. A cryptographic key is data that controls how a cryptography algorithm processes the plaintext. In other words, different keys generally cause the same algorithm to output different ciphertext for the same plaintext. Absent a needed decryption key, restoring the original data is, at best, an extremely time consuming mathematical challenge.
Cryptography is used in a variety of situations. For example, a document on a computer may be encrypted so that only authorized users of the document can decrypt and access the contents of the documents. Similarly, cryptography is often used to encrypt the contents of packets traveling across a public network. While malicious users may intercept these packets, these malicious users access only the ciphertext rather than the plaintext being protected.
Cryptography covers a wide variety of applications beyond encrypting and decrypting data. For example, cryptography is often used in authentication (i.e., reliably determining the identity of a communicating agent), the generation of digital signatures, and so forth.
Current cryptographic techniques rely heavily on intensive mathematical operations. For example, many schemes involve the multiplication of very large numbers. For instance, many schemes use a type of modular arithmetic known as modular exponentiation which involves raising a large number to some power and reducing it with respect to a modulus (i.e., the remainder when divided by given modulus). The mathematical operations required by cryptographic schemes can consume considerable processor resources. For example, a processor of a networked computer participating in a secure connection may devote a significant portion of its computation power on encryption and decryption tasks, leaving less processor resources for other operations.
Therefore, it would be advantageous to have a method, system, and computer program product that addresses one or more of the issues discussed above.